/*
 * GaugePanel.h
 * 
 *  Created on: Dec 28, 2010
 *  Author: Kevin Mueller
 */


#ifndef GAUGEPANEL_H
#define GAUGEPANEL_H

#include <QLabel>
#include <QWidget>
#include <QPixmap>

class QLabel;
class Clock;
class ExtendedGeoPositionInfo;

class VelocityGauge : public QLabel {
	Q_OBJECT

public:
	VelocityGauge(QWidget *parent = 0);

public slots:
	void setSpeed(const ExtendedGeoPositionInfo *motion);
};


class TimeGauge : public QLabel {
	Q_OBJECT

public:
	TimeGauge(QWidget *parent = 0);

public slots:
	void setTime(Clock *clk);
};


class ArrivalGauge : public QLabel {
	Q_OBJECT

public:
	ArrivalGauge(QWidget *parent = 0);

public slots:
	void setArrival(const ExtendedGeoPositionInfo*);
	void noArrival();

private slots:
	void setArrival();
};


class DistanceGauge : public QLabel {
	Q_OBJECT

public:
	DistanceGauge(QWidget *parent = 0);

public slots:
	void setDistance(const ExtendedGeoPositionInfo*);
	void noDistance();

private slots:
	void setDistance();
};


class CurrentRoad : public QLabel {
	Q_OBJECT

public:
	CurrentRoad(QWidget *parent = 0);

public slots:
	void setName(const ExtendedGeoPositionInfo*);
	void noName();
};


class Compass : public QLabel {
	Q_OBJECT

public:
	Compass(QWidget *parent = 0);

public slots:
	void setMovingDirection(int degree);
	void setMovingDirection(const ExtendedGeoPositionInfo *m);

private slots:
	void setMovingDirection();

private:
	QPixmap needle;
};

#endif
